Always-on access server pool

ABSTRACT

A method of managing a DSL connection by a DSL server modem, including receiving signals from a DSL client modem at a first rate, determining, by the DSL server modem, a data content of the received signals, and initiating, by the DSL server modem, negotiation of a change in the rate of the DSL connection, responsive to the determination of the data content, so as to receive signals at a second rate different from the first rate.

RELATED APPLICATIONS

This application is a U.S. national filing of PCT Application No.PCT/IL00/00266, filed May 9, 2000.

FIELD OF THE INVENTION

The present invention relates to communication systems and in particularto systems for handling remote access connections.

BACKGROUND OF THE INVENTION

Most homes in the developed part of the world are connected to a publictelephone network through copper wires which lead from the homes toneighboring switching and access equipment, located in a telephoneservice central office or in a digital loop carrier (DLC) referred tohereinbelow as switching boxes. At the switching boxes, the signalspassed on the copper wires are passed onto larger wires (referred to astrunks) which connect to a public telephone network. The usablebandwidth of the copper wires is relatively large (of the order ofseveral MHz), however, regular telephone calls (POTS) utilize only asmall portion of the bandwidth.

Standard Voice-band (V series) modems use the bandwidth conventionallyused for telephone calls to exchange data packets with an InternetService Provider (ISP). In most cases clients connect to the ISPimmediately before they need to connect to the Internet and disconnectimmediately thereafter, generally because the costs of telephone callsare a function of their duration. Establishing the modem connectionrequires between about 0.5–1 minutes during which the client cannot usethe connection. Clients who pay for telephone calls according to theirduration must pay also for the time in which the modem connection isbeing established.

Digital subscriber line (DSL) connections provide continuouscommunication with the ISP at a flat rate, such that there is no need toestablish a connection each time access to the Internet is sought. Inaddition, DSL connections provide larger bandwidth connections as theyutilize nearly the entire usable bandwidth of the copper wires. Informing a DSL connection, a pair of DSL modems are located on theopposite ends of the copper wires, in the user's home and in a digitalsubscriber line access multiplexer (DSLAM) in (or near) the centraloffice or DLC. One or more links, usually separate from the telephonetrunks, connect the DSLAM to a data network. In many cases the bandwidthof the link connecting the DSLAM to the data network is smaller thanrequired to handle data from all the client modems connected to theDSLAM. The size of the link is chosen based on statistical measurementsand the use of the link is distributed between the client DSL modemsbased on quality of service (QoS) and other criterions.

When there is interference on the copper wires, for example when thecopper wires are used concurrently with the DSL connection for atelephone call, the data rate of the DSL connection is reduced to allowproper detection of the signals despite the interference. The DSL modemsmay adjust to the lower transmission rate using a procedure referred toas fast retraining or retrain, for example, as described in the G.992.1and G.992.2 ITU recommendations.

The number of DSL modems positioned in a DSLAM is limited by variousphysical constrains, such as the space required for the DSL modems,their power consumption, and their heat dissipation capabilities(referred to as maximum heat density).

One method used to reduce the maximum heat density is using single-chipmodem pools which serve a plurality of client DSL modems in parallel.These DSL modem pools have sufficient processing power to serve theconnections to all the client modems they serve at the maximal usablebandwidth of the twin pair copper wires. One such modem pool is theTNETD4000C ADSL central office chip-set of Texas Instruments, Inc.

SUMMARY OF THE INVENTION

An aspect of some embodiments of the present invention relates to a DSLmodem pool which communicates with a plurality of client DSL modems atdynamically adjusted data rates. The maximal processing power of the DSLmodem pool is smaller than required to communicate with all the clientDSL modems at the maximal data rates allowed by the usable bandwidth ofthe links connecting to the client DSL modems. In some embodiments, themaximal processing power of the DSL modem pool is smaller than requiredto communicate with all the client DSL modems at maximal data-ratespromised to these client modems. The number of client DSL modemsconnected to the modem pool is selected according to statisticalmeasurements, such that the actual service required from the modem poolwill (statistically) almost never exceed the capabilities of the modempool. The modem pool may be implemented by a single processor or by aplurality of processors coordinated by one or more load balancers.

In some embodiments of the invention, the processing power of the DSLmodem pool is sufficient to handle an accumulated data ratesubstantially equal to the data rate supported by the link leading fromthe DSL modem pool to an ISP.

In an embodiment of the invention, the number of client DSL modems(subscribers) connected to the DSL modem pool is determined based onquality of service (QoS) criterions, which reflect the service levelagreements (SLA) made with the subscribers. For example, a DSL modempool may connect to a given number of high QoS client modems or to twicethe given number of low QoS client modems. In an embodiment of theinvention, when a larger number of client modems than can be handled bythe modem pool concurrently require service, the service is provided tothe higher QoS client modems or is distributed among the client modemsaccording to QoS and other criteria.

An aspect of some embodiments of the present invention relates to a DSLmodem pool which has a sleep state in which the modem requires lowerprocessing power than required to handle full-scale communication with aclient modem. In some embodiments of the invention, the DSL modem poolmoves connections to the sleep state at its initiative. For example,whenever the modem pool detects that no data is being passed to/from theclient modem, the modem pool may move the connection into the sleepstate. In an embodiment of the present invention, the sleep staterequires less than 50%, 20% or even 10% of the processing power requiredfor full scale communication with the client modem.

There is therefore provided in accordance with an embodiment of theinvention, a method of managing a DSL connection by a DSL server modem,including receiving signals from a DSL client modem at a first rate,determining, by the DSL server modem, a data content of the receivedsignals, and initiating, by the DSL server modem, negotiation of achange in the rate of the DSL connection, responsive to thedetermination of the data content, so as to receive signals at a secondrate different from the first rate.

In an embodiment of the invention, receiving signals from the clientmodem at the first rate includes receiving at a rate close to or equalto the maximal rate of the DSL connection.

Alternatively or additionally, receiving signals from the client modemat the first rate includes receiving at a rate equal to the maximal rateallotted to the DSL client modem. In an embodiment of the invention,determining the data content of the received signals includesdetermining whether the signals include information. In an embodiment ofthe invention, initiating a change in the rate of the connectionresponsive to the determination includes initiating the change if thereceived signals do not carry information for longer than apredetermined idle period. Alternatively or additionally, initiating achange in the rate of the connection responsive to the determinationincludes initiating the change if the received signals carryinformation. In an embodiment of the invention, the first rate is atleast ten times slower than the second rate. Alternatively, the firstrate is at least ten times faster than the second rate. In an embodimentof the invention, the second rate is close to or equal the lowest ratesustained by the DSL connection. In an embodiment of the invention, themethod includes transmitting signals to the client modem and initiatingnegotiation of a change in the rate of the DSL connection is performedresponsive to a determination of the data content of the transmittedsignals. In an embodiment of the invention, the server modem includes aplurality of processors and including transferring the connection frombeing handled by a first processor to a second processor concurrentlywith the negotiation of the change of rate. In an embodiment of theinvention, determining the data content of the received signals includesexamining the received signals.

There is further provided in accordance with an embodiment of theinvention, a method of servicing DSL client modems, including connectinga plurality of DSL client modems with respective maximal transmissiondata rates to a DSL server modem pool, and transmitting signals to mostof the DSL client modems at data rates substantially lower than theirrespective maximal data rates, substantially throughout the operation ofthe connections. In some embodiments, transmitting signals to most ofthe DSL client modems at data rates substantially lower than theirrespective maximal data rates includes transmitting to the most of theDSL client modems signals at rates lower than 20% of the respectivemaximal data rates. In an embodiment, the server modem pool has aprocessing power substantially lower than required to handle theplurality of DSL connections at their maximal data rates.

There is further provided in accordance with an embodiment of theinvention, a DSL modem pool, including an array of one or moreprocessors which have a total processing power sufficient to handleconnections with a predetermined number of client DSL modems at maximaldata rates promised to the client modems, and an analog front end whichconnects the array of processors to a number of client DSL modems largerthan the predetermined number of client DSL modems. In an embodiment ofthe invention, the analog front end connects to at least twice thepredetermined number of client DSL modems. In an embodiment of theinvention, the array of one or more processors handles at least one ofthe client modems at a rate substantially lower than the respectivemaximal data rate promised to the at least one client modem. In someembodiments, the modem pool includes a scheduler which dynamicallydetermines which at least one of the client modems are handled at a ratesubstantially lower than the respective maximal data rate promised tothe at least one client modem.

There is further provided in accordance with an embodiment of theinvention, a DSL modem pool, including a first group of one or moreprocessors which each handles one or more DSL connections at a commonfirst data rate, and a second group of one or more processors which eachhandle one or more DSL connections at a common second data ratedifferent from the first data rate. In some embodiments, the first andsecond groups handle DSL connections to client modems having differentquality of service (QoS). In an embodiment of the invention, the firstrate is at least ten times faster than the second rate. In someembodiments, the DSL modem includes a common memory which includes arecord for each of the client modems connected to the modem pool andwhich is accessible by all the processors in the first and secondgroups.

There is further provided in accordance with an embodiment of theinvention, a DSL modem pool for servicing a plurality of DSL clientmodems, including a plurality of processors each of which handles one ormore of the DSL client modems; and a scheduler which dynamicallyschedules the DSL client modems handled by each of the processors.

In an embodiment of the invention, the scheduler transfers the handlingof a client modem from a first processor to the second processor if theclient modem requires an increase in the processing power, whichincrease is above the available processing power of the first processor.In an embodiment of the invention, the modem pool includes a commonmemory which includes a record for each of the DSL client modemsserviced by the modem pool and which is accessible by all the processorsof the modem pool. In an embodiment of the invention, each of the DSLclient modems handled by the modem pool has a maximal data rate at whichit may operate and the combined processing power of all the processorsof the modem pool is substantially less than the processing powerrequired to handle all the DSL client modems handled by the modem poolat their respective maximal data rates. In an embodiment of theinvention, the combined processing power of all the processors of themodem pool is less than a fifth of the processing power required tohandle all the DSL client modems handled by the modem pool at theirrespective maximal data rates. In an embodiment of the invention, themodem pool includes a front end which has a separate interface for eachof the client modems and at least one switch which dynamically connectseach of the interfaces of the front end to one or more of the pluralityof processors, under instructions of the scheduler. In an embodiment ofthe invention, the modem pool includes at least one multiplexer whichconnects the interfaces of the front end to the at least one switch.

There is further provided in accordance with an embodiment of theinvention, a DSL modem pool, including a DSL front end which connects toa plurality of DSL client modems; and at least one processor whichhandles the transmission of signals to the client modems, through thefront end, at variable data rates and which initiates changing the datarates at which the signals are transmitted responsive to the informationcontent of the transmitted signals. In an embodiment of the invention,the at least one processor handles the transmission such thatsubstantially always the signals transmitted to at least one dynamicallychosen client modem are at a rate substantially lower than a maximalallowed rate.

There is further provided in accordance with an embodiment of theinvention, a method of servicing a client modem by a modem poolincluding a plurality of processors, including establishing a connectionbetween a first processor and the client modem, handling the clientmodem by the first processor, and transferring the handling of theclient modem to a second processor while the connection with the clientmodem is in force. In an embodiment of the invention, transferring thehandling of the client modem is performed responsive to an increase inthe processing power required for handling the client modem.Alternatively or additionally, transferring the handling of the clientmodem is performed responsive to an increase in the processing powerrequired by a different client modem handled by the first processor.

BRIEF DESCRIPTION OF FIGURES

The invention will be more clearly understood by reference to thefollowing description of embodiments thereof in conjunction with thefigures, in which:

FIG. 1 is a schematic illustration of a DSL supporting switching box andsome relevant connections thereto, in accordance with an embodiment ofthe present invention;

FIG. 2 is a schematic illustration of the software of a DSL modem pool,in accordance with an embodiment of the present invention;

FIG. 3 is a state diagram of a software package run on a modem pool, inaccordance with an embodiment of the present invention;

FIG. 4 is a schematic block diagram of a DSL modem pool, in accordancewith an embodiment of the present invention; and

FIG. 5 is a flowchart of the actions performed in transferring thehandling of a client modem between processors, in accordance with anembodiment of the present invention.

DETAILED DESCRIPTION OF EMBODIMENTS

FIG. 1 is a schematic illustration of a DSL supporting switching box 20and connections thereto, in accordance with an embodiment of the presentinvention. Switching box 20 connects a plurality of copper lines, e.g.,twisted pairs (TP) 22, through a line card and switch pool 24, to atrunk 26 which leads to further parts of a public switching telephonenetwork (PSTN) 21. Trunk 26 provides service to phones or faxes 25 atthe client ends of TPs 22. A plurality of TPs 22, are connected to usersites which have client DSL modems 30, in addition to, or instead of,their connections to phones or faxes 25. Generally, client DSL modems 30are connected to computers 29. The TPs 22 which connect to client modems30, are connected within switching box 20, either directly or through asplitter 19, to a digital subscriber line access multiplexer (DSLAM) 31.DSLAM 31 connects client modems 30 to a data network 35, such as theInternet, through a link 27. DSLAM 31 includes an analog front end (AFE)81 which performs A/D and D/A conversions of the signals passed on TPs22 and a DSL modem pool 32 which services the client DSL modems 30. Insome embodiments, client DSL modems 30 are standard modems known in theart, and no changes are required in client DSL modems 30 in order topractice the present invention.

FIG. 2 is a schematic illustration of the software running on modem pool32, in accordance with an embodiment of the present invention. For eachof TPs 22 that is connected to modem pool 32, the modem pool runs asoftware package 40 which handles the DSL signals passed on therespective TPs 22. Software package 40 includes, in some embodiments, adriver 34, a physical layer data pump 36 which modulates and demodulatessignals transmitted and received over lines 22 and a data link procedure38 which controls the flow of data over lines 22. Data link procedure 38performs bit manipulation of the transmitted and received signals,including, for example, flow control and optionally error correctionand/or detection. It is noted that in some embodiments, rather thanhaving different software packages 40 for each client modem 30, modempool 32 runs a single software package 40 which operates on differentdata from the different client modems.

In an embodiment of the present invention, modem pool 32 comprises asingle processor 33 which runs all the drivers 34, data pumps 36 anddata-link procedures 38. Alternatively, modem pool 32 comprises aplurality of processors, which run different software procedures. In anembodiment of the invention, a first processor, for example a DSPprocessor, runs drivers 34 and data pumps 36 and a second processor(referred to also as a controller), for example a RISC processor, runsdata link procedures 38. Further alternatively, modem pool 32 comprisesa plurality of processors which run different groups of softwarepackages 40. This alternative is described in detail furtherhereinbelow, with relation to FIG. 4.

Processor 33 has a predetermined processing power which is dividedbetween software packages 40, for example by a scheduler 42. Eachsoftware package 40 utilizes an amount of processing power which ismeasured, for example, as a percentage of the processing time ofprocessor 33 or in millions of instructions per second (MIPS). Theprocessing power of a software package 40 is a function of the rate atwhich the software package transmits and receives data. Therefore, theprocessing power required by each software package 40 changes with thedata rate of the data handled by the software package.

In some embodiments of the invention, the processing power of modem pool32 (i.e., processor 33 when modem pool 32 has only a single processor)is smaller than the processing power required to handle the clientmodems 30 serviced by the modem pool at the maximal data rates which canbe passed on TPs 22. In some of these embodiments, the processing powerof modem pool 32 is smaller than the processing power required to handlethe client modems 30 serviced by the modem pool at the maximal datarates promised to the client modems 30. In an embodiment of theinvention, the processing power required to handle client modems 30 atthe promised maximal data rates is four times, eight times or even tentimes the processing power of modem pool 32, depending on the number ofclient modems 30, the quality of service (QoS) promised to the users ofthe client modems and/or the use profiles of the client modems.

In some embodiments of the invention, the processing power of modem pool32 is related to the size of link 27, such that the limitations on thetotal data rates of client modems 30, imposed by modem pool 32 and link27 are substantially the same. In an embodiment of the invention, theprocessing power of modem pool 32 is substantially that required tohandle the maximal data rate allowed by link 27.

FIG. 3 is a state diagram of software package 40, in accordance with anembodiment of the invention. In the embodiment shown in FIG. 3, softwarepackage 40 may operate in one of two states: an active state 50 and asleep state 52. Software packages 40 which are servicing client modems30 currently in use are operated in active state 50 while other softwarepackages 40 are kept in sleep state 52. Modem pool 32 moves softwarepackages 40 between active state 50 and sleep state 52 dynamically basedon the usage of client modems 30.

In active state 50, software package 40 operates at a maximal data rateto which the user of the respective client DSL modem 30 is entitled. Inan embodiment of the invention, the data rate during active state 50 isthe maximal data rate which can be passed on copper wires 22 using DSLmodems 30 and 32, e.g., about 8 Megabits per second (Mbps).Alternatively, the maximal data rate is a function of quality of service(QoS), as defined for example by service level agreements (SLA). Forexample, users may pay a plurality of different sums for the DSLservice, and the data rate during active state 50 is a function of thesum paid by the user. In an embodiment of the invention, processor 33handles concurrently a plurality of client modems 30 with different datarates in active state 50.

In an embodiment of the present invention, software package 40 operatesin sleep state 52 at a minimal data rate of DSL connections whichguarantees that the connection remains active. In an exemplaryembodiment of the invention, the data rate in sleep state 52 is thelowest rate supported by a communication standard to which client modem30 adheres, e.g., about 64 Kbps, so that client modem 30 does notdisconnect the connection due to lack of signals. In some embodiments ofthe invention, the minimal data rate may be affected by higher layerstandards, such as ATM, in addition to or instead of physical and datalink layer standards. Alternatively, in embodiments in which data istransmitted (for short periods) also in sleep state 52, the data rateduring sleep state 52 is chosen according to QoS factors and/or as arate sufficient to provide sufficient service for most interactive datatransfers. In an embodiment of the invention, during sleep state 52,software package 40 operates at a data rate lower than 0.5 Mbps,optionally less than 0.1 Mbps.

In an embodiment of the invention, during sleep state 52 softwarepackage 40 skips some of the routines it normally performs. For example,during sleep state 52 software package 40 may skip errorcorrection/detection procedures and/or modulation/demodulation ofsignals which are known not to carry information. Thus, the processingpower required by software package 40 during sleep state 52 is furtherreduced. In an embodiment of the invention, the processes are skippedonly for signals transmitted from client modem 30 to modem pool 32 asthese signals necessarily do not carry information. It is noted thatduring sleep state 52 meaningful data may still be transmitted, althoughat a relatively low rate.

In an exemplary embodiment of the invention, processor 33 has a totalpower of 3000 MIPS. Software packages 40 in active state 50 consume 500MIPS while in sleep state 52 software packages 40 consume 50 MIPS.Assuming that usually less than 10 percent of client modems 30 servicedby modem pool 32 are in active state 50, processor 33 can handle thirtythree client modems 30. Three of the client modems 30 are allowed to beactive, consuming 3×500=1500 MIPS, and thirty of the client modems 30are in sleep state 52, consuming 30×50=1500 MIPS.

In an embodiment of the present invention, data link procedure 38 keepstrack of whether the signals it transmits to, and receives from, clientDSL modem 30 carry information. In some embodiments of the invention,when in active state 50 the transmitted and received signals do notcarry information for at least a predetermined idle period, softwarepackage 40 moves to sleep state 52. When during sleep state 52 thetransmitted or received signals carry information, software package 40is moved to active state 50.

In an embodiment of the invention, data link procedure 38 identifiesthat the signals it transmits and/or receives are not carryinginformation, by identifying long sequences which are standardly used asfillers by client DSL modems 30 when they have no information totransmit. Such sequences include for example long sequences of ‘1’ bitsor long sequences of alternating ‘1’ and ‘0’ bits. Alternatively oradditionally, data link procedure 38 consults control signalsaccompanying the data signals, which identify the transmitted data.

Alternatively to keeping track of both the signals transmitted to andthe signals received from client DSL modem 30, data link procedure 38keeps track only of the signals received from client modem 30 or of thesignals transmitted to client modem 30. Since substantially alltransmissions in one direction are accompanied by acknowledgments in theother direction it is considered sufficient to keep track of only onedirection.

Alternatively to moving to active state 50 if either the signalsreceived from client modem 30 or transmitted to client modem 30 carryinformation, software package 40 remains in sleep state 52 even ifinformation carrying signals are transmitted to client modem 30, as longas information carrying signals are not received from the client modem.In some embodiments of this alternative, software package 40 examinesthe contents of the signals received from client modem 30 to determinewhether the signals include user initiated data or computer generateddata, such as acknowledgments generated responsive to data transmittedto the client modem. Only if the signals from client modem 30 are usergenerated signals, software package 40 moves back to active state 50.Thus, if a flux of information is pushed to a computer 29 connectedthrough client modem 30 when the respective software package 40 is insleep state 52, the information is sent slowly, at the rate of sleepstate 52, to the client modem, as it is assumed that a user is notsitting next to the computer. In an embodiment of the invention,computer 29 displays a control which when actuated sends a dummy messagewhich signals to modem pool 32 that the user is sitting next to thecomputer and therefore, software package 40 should move from sleep state52 to active state 50.

In some embodiments of the invention, when during sleep state 52 data istransmitted to client modem 30 but not from the client modem, softwarepackage 40 determines the rate at which data is being provided to modempool 32 for transmission to client modem 30. If the determined rate ismuch larger than provided by sleep state 52, software package 40 movesto active state 50. Alternatively or additionally, if in sleep state 52the data transmission to client modem 30 continues for over apredetermined transmission period, software package 40 moves to activestate 50.

In some embodiments of the invention, software package 40 moves fromactive state 50 to sleep state 52 even if signals are transmitted toclient modem 30, as long as information carrying signals (or useractuated signals) are not received from the client modem for over thepredetermined idle period.

In an embodiment of the invention, the predetermined idle period afterwhich software package 40 moves to sleep state 52 is selected so as tominimize the number of times in which software package 40 moves to sleepstate 52 for a relatively short period. In one embodiment of theinvention, the predetermined idle period is long enough such thatsoftware package 40 will generally not move to sleep state 52 while auser of computer 29 is in the middle of a session which uses client DSLmodem 30. In an embodiment of the present invention, the predeterminedidle period is longer than the average time in which people viewinformation received over the Internet without requesting moreinformation. Alternatively or additionally, the predetermined idleperiod is determined as a QoS factor, e.g., the length of thepredetermined idle period is a function of the sum paid by the user forthe DSL service. In an embodiment of the invention, the predeterminedidle period is between about 2–30 minutes, for example about 5 or 20minutes.

In an embodiment of the present invention, software package 40 movesfrom sleep state 52 to active state 50 immediately when meaningfulinformation is detected. Alternatively, software package 40 waits apredetermined short period of time before moving to active state 50,allowing the user to receive at least a short response to the usergenerated signal which caused the movement between states, beforesoftware package 40 stops responding due to the movement between states.In an exemplary embodiment of the invention, software package 40 sendscomputer 29 a warning indication on the forthcoming lack of service dueto the movement between states.

Further alternatively, the movement to active state 50 is performed whenthe amount of data transmitted or received by software package 40reaches the bandwidth capacity during sleep state 52. Thus, the changein the data rate is performed only when the high bandwidth rates ofactive state 50 are needed in which case the user can endure a shortdelay due to data rate negotiation, as the amount of transmitted data islarge and involves a long delay anyhow. Further alternatively oradditionally, the movement between states is performed when the amountsof transmitted or received data reach the bandwidth capacity duringsleep state 52 or when no data is transmitted, whichever happens first.Thus, in many cases the movement between states will be performed duringa time in which no data is being transmitted, and there will besubstantially no interference to the user operation. Optionally, theuser may choose in the service level agreement (SLA) which of the aboveoptions is used.

In some embodiments of the present invention, software package 40 mayoperate in more than two states, i.e., with more than two data rates. Inan embodiment of the invention, one or more software packages 40 havethree or more states: a sleep state, an active state and one or moreintermediate rate states. The intermediate rate states operate atintermediate data rates between the data rate of sleep state 52 andactive state 50, e.g., between half to a tenth of the data rate of theactive state.

In some embodiments of the invention, the intermediate rate states areused only when processor 33 does not have sufficient processing power toallow all the software packages 40 which should be in the active state,to be in the active state. Thus, a client may purchase, for a cheapprice, a DSL package which provides full bandwidth at most hours andreduced bandwidth at rush hours. Alternatively or additionally, theintermediate rate states are used as intermediate states between thesleep state and the active state. That is, software package 40 alwaysmoves from the sleep state to an intermediate rate state and only ifnecessary, does the software package 40 move to the active state. Insome embodiments of the invention, if a client uses only small amountsof bandwidth in the active state for at least a predetermined period(e.g., as period equal to the idle period) the respective softwarepackage 40 is moved to an intermediate rate state. The movement to theintermediate state may be performed, for example, at the first chance inwhich no signals are transmitted from client modem 30 after it isdecided to perform the state transition. Alternatively, a softwarepackage 40 is moved from the active state to the sleep state if it doesnot transmit information for the predetermined idle period or to anintermediate state if the processing power of processor 33 is exhausted.

In an embodiment of the present invention, the state at which softwarepackage 40 operates when it is not in sleep state 52, depends on one ormore external parameters, such as the time and/or date. For example, auser may purchase a reduced-price DSL service package which providesservice at the full data rate of active state 50 during the night and atan intermediate rate during the day, or vice versa.

In some embodiments of the present invention, before moving from sleepstate 52 to active state 50, software package 40 checks with scheduler42 whether processor 33 has sufficient processing power to handle thesoftware package in active state 50. In an embodiment of the invention,scheduler 42 keeps track of the state of each of software packages 40and compares the number of software packages 40 in active state 50 to amaximal allowed number of software packages 40 in active state 50.Alternatively, scheduler 42 keeps track of the actual amount ofprocessing power utilized by each software package 40 and accordinglydetermines whether another software package 40 can be in active state50.

In some embodiments of the invention, when a first software package 40should move to active state 50 but processor 33 does not have sufficientprocessing power to allow the move, processor 33 waits until a differentsoftware package 40 moves from active state 50 to sleep state 52 beforeit moves the first software package to active state 50. Meanwhile, theclient modem 30 serviced by the first software package 40 receivesservice at the low rate of sleep state 52. Alternatively oradditionally, processor 33 selects a software package 40 in active state50 and moves the selected software package to sleep state 52 to allowmovement of the first software package 40 to active state 50. In someembodiments, the software package 40 moved to sleep state 52 is selectedas the software package 40 for which information was not transmitted forthe longest period. Alternatively or additionally, the selected softwarepackage is the software package 40 for which user generated signals werenot generated for the longest period. In one embodiment, the selectedsoftware package 40 is moved to sleep state 52 only if it did nottransmit information for at least a predetermined time.

Further alternatively or additionally, each software package 40 isassociated with a priority or QoS indication, and the software package40 in active state 50 with the lowest priority is moved to sleep state52 if its priority is lower than the priority of the first softwarepackage 40. In some embodiments, the decision on which software package40 is moved to sleep state 52 is performed based on a weighted functionof the above described factors.

In some embodiments of the invention, when a software package 40 needsto move out of sleep state 52 while processor 33 does not havesufficient available processing power, one or more software packages 40are moved to intermediate states so as to allow the software package 40in sleep state 52 to move to active state 50 or to one of theintermediate states. The software packages moved to the intermediatestates may be chosen using any of the above described methods ofchoosing the software package 40 to be moved to sleep state 52.

In an embodiment of the present invention, the number of client modems30 serviced by modem pool 32 is chosen according to statisticalinformation on the habits of the users of computers 29 such that thechances of a software package 40 requesting to move from sleep state 52to active state 50 being refused are below a predetermined lowprobability.

In an embodiment of the present invention, the movements between sleepstate 52 and active state 50 are performed using a method of negotiatinga new data transfer rate between client modem 30 and modem pool 32. Insome embodiments of the invention, the negotiation method only minimallyinterferes with the normal transmission of data between client modem 30and modem pool 32, so as not to annoy a user who is waiting for data. Inan embodiment of the invention, different methods of data ratenegotiation are used for different state transitions. For example, whenit is probable that the negotiation will annoy a user of computer 29, afast negotiation method is used, while when it is assumed that a user isnot presently using computer 29, a complete, relatively slow,negotiation method is used.

In an embodiment of the invention, in moving to sleep state 52 acomplete negotiation method is used while in moving to active state 50or to intermediate states a fast negotiation method is used.

In an exemplary embodiment of the invention, the movements between sleepstate 52 and active state 50 are performed using the fast retrainingmethod described in the above mentioned G.992.2 (G.Lite) ITUrecommendation (which requires about 3 seconds) or the retraining methoddescribed in the G.SHDSL suggested ITU recommendation. Alternatively oradditionally, the movements between sleep state 52 and active state 50are performed using a variation of any initial training method, such asthe method described in the G.992.1 (G.DMT) ITU recommendation. Furtheralternatively or additionally, any other method of changing thetransmission rate on TPs 22 is used. For example, a quick method whichdoes not include line testing may be used, especially for reducing thetransmission rate, as a line which is suitable for a high data rateshould surely be suitable for a lower data rate. When, for example, itis required to reduce the data rates of one or more active softwarepackages 40 in order to allow a sleeping software package to move to anactive or intermediate state, such a quick method is optionally used.

In one embodiment of the invention, during the initial training of theconnection, parameters are determined for both active state 50 and sleepstate 52 (and/or the intermediate states). When a transition betweenstates is performed, the parameters determined during the initialtraining are used, in order to save time. In an exemplary embodiment ofthe present invention, during sleep state 52 client modem 30 and modempool 32 periodically exchange test signals such that immediately when itis desired to move to active state 50 data rate negotiation is performedwithout performing the line tests.

The data rates in the upstream (from client 30) and downstream (toclient 30) in any of the transmission states (i.e., active state 50,sleep state 52, and any intermediate states) may be the same ordifferent according to the specific service level agreement of the user.It is noted that the division of the total bandwidth between theupstream and downstream may have different proportions in differentstates. In an exemplary embodiment of the invention, in sleep state 52the bandwidth is divided equally between the upstream and thedownstream, while in active state 50 most of the bandwidth is allocatedto the downstream. In another exemplary embodiment of the presentinvention, during sleep state 52 most of the bandwidth is allocated tothe downstream which in some cases, as described above, may continue topass information during the sleep state without causing software package40 to move to the active state.

In some embodiments of the invention, computer 29 may initiate movementto sleep state 52 in order to reduce the energy consumption of clientmodem 30. In an embodiment of the invention, when software package 40 ismoved to sleep state 52 at the initiative of client modem 30, it onlyleaves the sleep state at the initiative of the client modem.Alternatively, software package 40 moves out of sleep state 52 accordingto any of the procedures described above, regardless of the reason itmoved into the sleep state.

FIG. 4 is a schematic block diagram of a DSL modem pool 80, inaccordance with an embodiment of the present invention. Modem pool 80comprises a plurality of processors 82 (marked 82A, 82B, etc.), whichhandle the signals received from and/or transmitted to the client DSLmodems 30 connected to modem pool 80. Each processor 82 handles one ormore client modems 30. Modem pool 80 is connected to a plurality of DSLclient modems 30 in a manner similar to modem pool 32 shown in FIG. 1.In an embodiment of the invention, an analog front end (AFE) 81 providessignals from each of twisted pairs 22 to a multiplexer 88. A switch 83dynamically connects the output of multiplexer 88 to one of processors82. Alternatively, any other switching device is used to dynamicallyconnect the outputs of AFE 81 to processors 82. For example, in oneembodiment, each processor 82 has a respective multiplexer and switchwhich provide signals from one of TPs 22 to the processor.Alternatively, a complex switch with a connection for each output of AFE81 is used without a multiplexor. Further alternatively or additionally,a parallel bus is used. In an embodiment of the invention, each outputof AFE 81 writes on a sub-bus of the parallel bus and each processorlistens to a group of one or more of the sub-buses. The sub-buses towhich each AFE output writes and to which each processor listens are setdynamically. Alternatively, the sub-bus to which each AFE output writesis predetermined and only the identity of the sub-buses to which eachprocessor listens changes dynamically. Further alternatively oradditionally, a serial bus is used, optionally with a time divisionmethod.

In some embodiments of the invention, modem pool 80 also includes acommon memory 86 which may be accessed by substantially all ofprocessors 82. For each client modem 30 serviced by modem pool 80,common memory 86 comprises a record which stores information related tothe client modem 30. In an embodiment of the invention, each recordstores substantially all the information required by a processor 82 tohandle the respective client modem 30, such that a processor 82 assignedto handle a client modem 30 does not need any information other thanthat found in the respective record in common memory 86.

In some embodiments of the invention, a scheduler 84 dynamically assignsto each of processors 82 a number of client modems 30 for handling.Accordingly, scheduler 84 controls multiplexer 88 and switch 83 totimely provide the signals from TPs 22 to the respective processors 82.In an embodiment of the invention, each processor 82 runs one or moredrivers which accumulate the signals transmitted to modem pool 80 fromthe client modems 30 assigned to the processor. The accumulated signalsare stored in the respective record within common memory 86 of theclient modem 30 transmitting the signals.

In an embodiment of the invention, each processor 82 runs a data pump 36which handles during a predetermined time cycle the data of all theclient modems 30 assigned to the processor. In an embodiment of theinvention, each processor 82 runs a scheduler (similar to scheduler 42of FIG. 2) which determines the order in which client modems 30 assignedto the processor are to be handled. In an embodiment of the invention,each processor 82 handles each of the client modems 30 it is assignedconsecutively according to a scheduled order, during the predeterminedcycle. Alternatively, any other scheduling methods, such as the methodsdescribed in U.S. patent application Ser. No. 09/501,078, “Scheduling ina Remote-Access Server”, filed on Feb. 9, 2000, the disclosure of whichis incorporated herein by reference, are used by processors 82 indetermining the order of handling the data of the different clientmodems 30 it is assigned.

In an embodiment of the invention, each processor 82 runs a data linkprocedure 38 (FIG. 2). In an embodiment of the invention, when data pump36 completes handling the data of a client modem 30 it calls the datalink procedure 38 to handle the data processed by the data pump 36.Alternatively or additionally, scheduler 42 schedules the operation ofdata pump 36 and data link procedure 38 independently.

When a processor 82 is scheduled to handle a specific client modem 30,the processor retrieves the respective record of the client modem fromcommon memory 86 and processes the data of the client modem 30. When theprocessing is completed, all the information is stored again in commonmemory 86 for the next time the specific client modem 30 is processed.

In an embodiment of the invention, the internal scheduler of eachprocessor 82 keeps track of the available processing power of theprocessor. When a client modem 30 handled by a processor 82 (for example82A) needs to move to active state 50, processor 82A checks whether itsavailable processing power is sufficient to allow the movement. Ifprocessor 82A does not have sufficient processing power to allow themovement, processor 82A notifies scheduler 84 which passes one or moreof the client modems 30 handled by processor 82A to a differentprocessor 82 which has a sufficient amount of available processingpower. In an embodiment of the invention, the client modem 30 whichneeds to move to active state 50 is transferred to a different processorwhich has sufficient available processing power. Alternatively oradditionally, for example when no one processor 82 has sufficientavailable processing power, one or more client modems 30 in sleep state52, as necessary, are transferred to other processors 82. Furtheralternatively or additionally, one or more client modems 30 in sleepstate 52 are transferred from a processor 82B to other processors 82 inorder to make room for the transfer of the client modem 30 moving toactive state 50, from processor 82A to processor 82B.

In an embodiment of the invention, the determination of which clientmodem 30 is to be transferred, is performed as described in Israelpatent application 132,888, “Channel Load Balancing”, filed Nov. 11,1999, the disclosure of which is incorporated herein by reference.

FIG. 5 is a flowchart of the actions performed in transferring a clientmodem 30 from a first processor 82A to a second processor 82B, inaccordance with an embodiment of the present invention. When scheduler84 determines that a particular client modem 30 is to be transferredfrom processor 82A to processor 82B, scheduler 84 instructs (100)processor 82A to remove the particular client modem 30 out of itsinternal scheduling order. Processor 82A removes (102) the particularclient modem 30 from its scheduling order and notifies (104) scheduler84 to this effect. In some embodiments of the invention, if (106) theparticular client modem 30 is currently being handled, processor 82Acompletes (108) the handling before it removes (102) the particularclient modem 30 from its scheduling order. Alternatively, in order tominimize the time in which the transferred modem 30 is not handled dueto the transfer, processor 82A handles the client modem 30 before itremoves (102) the client modem 30 from the scheduling order. It is notedthat this handling may delay the transfer by a short period, due to thewait until the turn of the transferred client modem 30 is reached.

Thereafter, scheduler 84 instructs (110) processor 82B to add the clientmodem 30 to its internal scheduling order. In an embodiment of theinvention, scheduler 84 supplies processor 82B with the address incommon memory 86 of the record of the transferred modem 30.Alternatively, common memory 86 comprises a table 90 (FIG. 4) whichlists the addresses of the records of all the client modems 30 handledby modem pool 80, and processor 82B accesses table 90 to determine theaddress of the record of the transferred client modem 30. Processor 82Badds (112) the client modem 30 to the end of the scheduling order toprevent a different client modem 30 from not receiving handling on time(i.e., starving) due to the transfer. Alternatively, processor 82Bchecks where in the scheduling order the transferred client modem can beplaced without causing starvation to any of the client modems 30 handledby processor 82B.

In some embodiments of the invention, when the transferred client modem30 is transferred due to its need to move from sleep state 52 to activestate 50, modem pool 80 changes the data rate of the connection with theclient modem, concurrently with the transfer process described in FIG.5. Thus, when processor 82B first processes the data of the transferredclient modem 30, the client modem 30 is in active state 50. In anembodiment of the invention, the negotiation of the data rate (e.g., theretrain) is performed by processor 82A from which the client modem 30 istransferred. Alternatively, the negotiation of the data rate isperformed by processor 82B to which the client modem 30 was transferred.Further alternatively, a different processor other than processors 82Aand 82B performs the data rate negotiation. Further alternatively,processors 82A and 82B split between them the rate negotiation. Forexample, the transfer between processor 82A and 82B in performing atraining similar to that described in the G.DMT recommendation may beperformed during the C-QUITE2 state, such that processor 82A handles thetraining until the QUITE2 state is reached and thereafter processor 82Bhandles the training.

It is noted that transferring the handling of a client modem 30 betweenprocessors 82 involves, in many cases, a short period during which thedata of the client modem 30 is not handled properly. By performing thetransfer at the same time with the retraining this short period isoverlapped by the period in which client modem 30 is not handled due tothe retraining. Thus, the annoyance to the user of client modem 30 isreduced.

In some embodiments of the invention, processors 82 are divided intogroups which handle client modems 30 in different states. For example,for the two state case of FIG. 3, processors 82 are divided into twogroups: a group which handles client modems 30 in active state 50 and agroup which handles client modems 30 in sleep state 52. When a clientmodem 30 moves from one state to the other, it is transferred betweenthe groups of processors 82. Thus, each processor is assigned to handleonly modems 30 in a single state, thus simplifying the internalscheduling of the modems 30 handled by the processor. In addition,having each processor handle only client modems 30 in a single statesimplifies the assigning of the client modems 30 to processors 82 bystating a number of client modems 30 which can be handled by eachprocessor 82 rather than calculating the processing power. For three ormore possible states, three or more groups of processors 82 areoptionally defined. In an embodiment of the present invention, thegroupings of processors 82 are predefined and do not change during theoperation of modem pool 80. Alternatively, the groupings of processors82 change dynamically based on the number of processors and/orprocessing power required from each group.

In addition to reducing the current consumption of DSL modems withinswitching boxes, the embodiments of the present invention, reduce thephysical space required by the DSL modems in the switching box and thecost of the DSL modems in the switching box.

It will be appreciated that the above described methods may be varied inmany ways, including, changing the order of steps, and the exactimplementation used. It should also be appreciated that the abovedescribed description of methods and apparatus are to be interpreted asincluding apparatus for carrying out the methods and methods of usingthe apparatus. The present invention has been described usingnon-limiting detailed descriptions of embodiments thereof that areprovided by way of example and are not intended to limit the scope ofthe invention. It should be understood that features and/or stepsdescribed with respect to one embodiment may be used with otherembodiments and that not all embodiments of the invention have all ofthe features and/or steps shown in a particular figure or described withrespect to one of the embodiments. Variations of embodiments describedwill occur to persons of the art. Furthermore, the terms “comprise,”“include,” “have” and their conjugates, shall mean, when used in theclaims, “including but not necessarily limited to.”

It is noted that some of the above described embodiments describe thebest mode contemplated by the inventors and therefore include structure,acts or details of structures and acts that may not be essential to theinvention and which are described as examples. Structure and actsdescribed herein are replaceable by equivalents which perform the samefunction, even if the structure or acts are different, as known in theart. Therefore, the scope of the invention is limited only by theelements and limitations as used in the claims.

1. A DSL modem pool, comprising: an array of one or more processorswhich have a total processing power sufficient to handle connectionswith a predetermined number of client DSL modems at maximal data ratespromised to the client modems; an analog front end adapted to connectthe array of processors to a number of client DSL modems larger than thepredetermined number of client DSL modems; and a scheduler adapted todynamically determine at least one of the client modems to be handled ata rate substantially lower than the respective maximal data ratepromised to the at least one client modem, so that the processing powerrequired by the client modems connected to the array of processors doesnot exceed the total processing power of the array.
 2. A modem poolaccording to claim 1, wherein the analog front end is adapted to connectto at least twice the predetermined number of client DSL modems.
 3. Amodem pool according to claim 1, wherein the array of one or moreprocessors is adapted to communicate with more than half the clientmodems connected to the analog front end, at a rate substantially lowerthan the respective maximal data rate promised to the client modems. 4.A modem pool according to claim 1, wherein the array of one or moreprocessors is adapted to communicate with the at least one of the clientmodems, at a rate lower than 20% of the respective maximal data rate ofthe client modem.
 5. A modem pool according to claim 1, wherein thearray of one or more processors is adapted to communicate with the atleast one of the client modems, at a rate lower than 0.1 Mbps.
 6. Amodem pool according to claim 1, wherein the analog front endsubstantially continuously transmits signals to each of the clientmodems connected to the array of processors.
 7. A modem pool accordingto claim 1, wherein the at least one of the client modems to be handledat a rate substantially lower than the respective maximal data rate isselected responsive to the amount of information transmitted to theclient modems.
 8. A modem pool according to claim 1, wherein the atleast one of the client modems to be handled at a rate substantiallylower than the respective maximal data rate is selected responsive toquality of service values assigned to the client modem.
 9. A modem poolaccording to claim 1, wherein the scheduler is adapted to change thetransmission rate of a first connection responsive to a need to changethe transmission rate of a second connection.
 10. A modem pool accordingto claim 9, wherein the scheduler is adapted to select the firstconnection as a connection with a low quality of service.
 11. A modempool according to claim 9, wherein the scheduler is adapted to selectthe first connection as a connection on which information was nottransmitted for a longest time.
 12. A modem pool according to claim 1,wherein the scheduler is adapted to handle a transmission such thatsubstantially always the signals transmitted to at least one dynamicallychosen client modem are at a rate substantially lower than a maximalallowed rate.
 13. A modem pool according to claim 1, wherein thescheduler is adapted to initiate changing the data rate at which thesignals are transmitted to at least one client modem, responsive to adetermination that the transmitted signals do not include information.14. A modem pool according to claim 1, wherein the scheduler is adaptedto transfer the handling of a client modem from a first processor to asecond processor if the client modem requires an increase in theprocessing power, which increase is above the available processing powerof the first processor.
 15. A modem pool according to claim 1,comprising a common memory which includes a record for each of the DSLclient modems serviced by the modem pool and which is accessible by allthe processors of the modem pool.
 16. A modem pool according to claim 1,wherein each of the DSL client modems handled by the modem pool has amaximal data rate at which it may operate and wherein the combinedprocessing power of all the processors of the modem pool issubstantially less than the processing power required to handle all theDSL client modems handled by the modem pool at their respective maximaldata rates.
 17. A modem pool according to claim 16, wherein the combinedprocessing power of all the processors of the modem pool is less than afifth of the processing power required to handle all the DSL clientmodems handled by the modem pool at their respective maximal data rates.18. A modem pool according to claim 1, comprising at least one switchwhich dynamically connects each of the interfaces of the front end toone or more of the plurality of processors, under instructions of thescheduler.
 19. A modem pool according to claim 1, comprising at leastone multiplexer which connects the interfaces of the front end to an atleast one switch.